home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
NetNews Offline 2
/
NetNews Offline Volume 2.iso
/
news
/
comp
/
std
/
c
/
321
< prev
next >
Wrap
Internet Message Format
|
1996-08-06
|
2KB
Path: news.crd.ge.com!usenet
From: Christopher R Volpe <volpe@ash.crd.ge.com>
Newsgroups: comp.std.c
Subject: Re: A question about: #define
Date: Mon, 12 Feb 1996 17:27:19 -0500
Organization: GE Corporate Research & Development, Schenectady, NY
Message-ID: <311FBEC7.A84@ash.crd.ge.com>
References: <qug2cgc3xo.fsf@chivas.eua.ericsson.se> <311f3104.236842591@nntp.ix.netcom.com>
NNTP-Posting-Host: bart.crd.ge.com
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-Mailer: Mozilla 2.0 (X11; I; SunOS 5.4 sun4m)
Mike Rubenstein wrote:
>
> tobbe@erix.ericsson.se (Torbj|rn T|rnkvist) wrote:
> >
> > I'm wondering if the following preprocessor directive is
> > permissible in ANSI C ?
> >
> > #define A #define B
>
> It depends on what you mean. It's legal to define A like that, but
> using A as a macro in your program is not. From ISO 6.8.3.4:
>
> The resulting [from macro expansion] completely macro-replaced
> preprocessing token sequence is not processed as a
> preprocessing directive even if it resembles one.
The fact that the result is not processed as a preprocessing directive
even if it resembles one does not necessarily mean that the use of macro
A above would be illegal. I suspect you pass A as an argument to another
macro that stringizes the expansion of its parameter, or something along
those lines. I haven't really thought about it that much so I'm
guessing.
--
Chris Volpe Phone: (518) 387-7766 (Dial Comm 8*833
GE Corporate R&D Fax: (518) 387-6560
PO Box 8, Schenectady, NY 12301 Email: volpecr@crd.ge.com